﻿using System;
using System.Collections.Generic;
using Autodesk.Revit.DB;
using Autodesk.Revit.DB.Architecture;
using YJKRevitDimensionText.OneKeyPlanDim.DimData;
using YJKRevitDimensionText.VerticalAutoDim.OutWallSearch;

namespace YJKRevitDimensionText.OneKeyPlanDim.LevelDim
{
	public class KeyComponent
	{
		public static KeyComponent GetInstance()
		{
			if (KeyComponent.m_Instance == null)
			{
				KeyComponent.m_Instance = new KeyComponent();
			}
			return KeyComponent.m_Instance;
		}

		public static void SetInstanceToNull()
		{
			KeyComponent.m_Instance = null;
		}

		private KeyComponent()
		{
		}

		public List<Document> m_lstDoc = new List<Document>();

		public Document m_doc;

		public List<OutWallData> m_lstOutWallData = new List<OutWallData>();

		public List<Curve> m_lstOutWallCurves = new List<Curve>();

		public List<Stairs> m_lstStairs = new List<Stairs>();

		public List<Dimension> m_lstSizeDimension = new List<Dimension>();

		public List<FamilyInstance> m_lstLevelDimension = new List<FamilyInstance>();

		public List<FamilyInstance> m_lstSlopeDimension = new List<FamilyInstance>();

		public List<FamilyInstance> m_lstColumn = new List<FamilyInstance>();

		public List<Element> m_lstOpening = new List<Element>();

		public Dictionary<ElementId, IndependentTag> m_DicIndependentTag = new Dictionary<ElementId, IndependentTag>();

		public List<Wall> m_lstWall = new List<Wall>();

		public List<FamilyInstance> m_lstDoor = new List<FamilyInstance>();

		public List<FamilyInstance> m_lstWindow = new List<FamilyInstance>();

		public List<DbRoom> m_AllRoom = new List<DbRoom>();

		public List<DbSteps> m_AllDbSteps = new List<DbSteps>();

		public List<DbCarRamp> m_AllDbCarRamp = new List<DbCarRamp>();

		public List<DbRevitRamp> m_AllDbRevitRamp = new List<DbRevitRamp>();

		public List<DbRampByDoor> m_AllDbRampByDoor = new List<DbRampByDoor>();

		public List<DbBarrierFreeRamp> m_AllDbBarrierFreeRamp = new List<DbBarrierFreeRamp>();

		public List<DbSlopeFloor> m_AllDbSlopeFloor = new List<DbSlopeFloor>();

		public List<DbFloorDrain> m_AllDbFloorDrain = new List<DbFloorDrain>();

		public List<DbGutter> m_AllDbGutter = new List<DbGutter>();

		public List<RoofBase> m_lstRoof = new List<RoofBase>();

		public List<TopographySurface> m_lstTopographySurface = new List<TopographySurface>();

		public List<BuildingPad> m_lstBuildingPad = new List<BuildingPad>();

		public List<DbAxial> m_lstDbAxial = new List<DbAxial>();

		public List<DbCanopy> m_lstDbCanopy = new List<DbCanopy>();

		public RoofLevelDim m_RoofLevelDim;

		public FloorLevelDim m_floorLevelDim;

		public ParapetLevelDim m_ParapetLevelDim;

		public OutDoorFloorLevelDim m_OutDoorFloorLevelDim;

		private static KeyComponent m_Instance;
	}
}
